package cn.yh.nft.turbo.api.user.service;

import cn.yh.nft.turbo.api.user.request.*;
import cn.yh.nft.turbo.api.user.response.UserOperatorResponse;
import cn.yh.nft.turbo.api.user.response.UserQueryResponse;
import cn.yh.nft.turbo.api.user.response.data.UserInfo;
import cn.yh.nft.turbo.base.response.PageResponse;

/**
 * @ClassName: UserFacadeService
 * @Author: 草莓爱上啵啵
 */
public interface UserFacadeService {

    /**
     * 用户信息查询
     * @param userQueryRequest
     * @return
     */
    UserQueryResponse<UserInfo> query(UserQueryRequest userQueryRequest);

    /**
     * 分页查询用户信息
     * @param userQueryRequest
     * @return
     */
    PageResponse<UserInfo> pageQuery(UserPageQueryRequest userQueryRequest);

    /**
     * 用户注册
     * @param userQueryRequest
     * @return
     */
    UserOperatorResponse register(UserRegisterRequest userQueryRequest);

    /**
     * 用户信息修改
     * @param userQueryRequest
     * @return
     */
    UserOperatorResponse modify(UserModifyRequest userQueryRequest);

    /**
     * 用户实名认证
     * @param userQueryRequest
     * @return
     */
    UserOperatorResponse auth(UserAuthRequest userQueryRequest);

    /**
     * 用户激活
     * @param userQueryRequest
     * @return
     */
    UserOperatorResponse active(UserActiveRequest userQueryRequest);
}
